package 类与对象.接口;
/*
    接口就是给出一些没有实现的方法，封装到一起，到某个类要使用的时候，在跟进具体情况把这些方法写出来
    interface 接口名 {
        属性
        方法 (1.抽象方法  2.默认实现方法 3.静态方法)
    }

    class 类名 implements 接口 {
        自己属性；
        自己方法；
        必须实现的接口的抽象方法
    }
    1.接口不能被实例化
    2.接口中所有的方法是 public方法，接口中抽象方法，可以不用abstract修饰
    3.一个普通类实现接口，就必须将该接口的所有方法都实现
    4.抽象类去实现接口时，可以不实现接口的抽象方法
    5.一个类同时可以实现多个接口
    6.接口中的属性，只能是final修饰的，而且是public static final修饰的 如：int a = 1;
    7.接口中属性的访问形式：接口名.属性名
    8.接口不能继承其他的类，但是可以继承多个接口
    9.接口只有public，默认

    继承的价值主要在于：解决代码的复用性和可以维护性
    接口的价值主要在于：设计好各种规范，让其它类去实现这些方法，即更加灵活
    接口比继承更加灵活
    接口在一定程度上实现代码解耦
 */
public class 概念 {
    public static void main(String[] args) {
        System.out.println(IB.n);
//        System.out.println(IB.n=1);
    }
}

interface IB{
    public final static  int n = 1;
    void run();
}

interface IC{
    void skip();
}

class Person implements IC,IB{
    @Override
    public void run() {
        System.out.println("mao run");
    }

    @Override
    public void skip() {
        System.out.println("mao skip");
    }
}

interface  ID extends IC,IB {

    void skip();


    void run();
}